/* 
 * File:   Picture.h
 * Author: johannes
 *
 * Created on January 22, 2014, 7:34 PM
 */

#ifndef PICTURE_H
#define	PICTURE_H

#include "Texture.h"
#include "Utility.h"

namespace GUL {
    namespace System {
        namespace Graphic {
            class Window;

            class Picture : public Texture {
            private:
            protected:
            public:

                Picture(const Window&, const std::string&);
                Picture(const Window&, const std::string&, const std::string&);
                Picture(const Window&, const UPair&, const std::string&);
                Picture(Picture&);
                virtual ~Picture();

                Picture& operator=(const UPair&);
                Picture& operator=(Picture&);
                Picture& operator=(const std::string&);

                UPair& Size();
                unsigned Width();
                unsigned Height();

                Pos2D& TranslateRight(double);
                Pos2D& TranslateLeft(double);
                Pos2D& TranslateUp(double);
                Pos2D& TranslateDown(double);
                Pos2D& RotateRight(double);
                Pos2D& RotateLeft(double);

                void Scale(/*Scalefactor or what ever please look for right parameter(s)*/);


            };
        }
    }
}


#endif	/* PICTURE_H */

